local Download = {}


--- 持续检测某一个点，当这个点的颜色发生变化后才会继续运行
--- x : 要检测的点的X坐标
--- Y : 要检测的点的Y坐标
--- color: 当这个点的颜色等于这个颜色值时就会退出循环，继续向下执行
function WatchPoint(x,y,color)
  while true do
    if getColor(x, y) == color then
        mSleep(100)
        break
    end
    mSleep(100)
  end
end

--- 持续检测某一个点，当这个点的颜色发生变化后才会继续运行
--- x : 要检测的点的X坐标
--- Y : 要检测的点的Y坐标
--- color: 当这个点的颜色不再等于这个颜色值时就会退出循环，继续向下执行
function WatchPointChange(x,y,color)
  while true do
    if getColor(x, y) ~= color then
        mSleep(100)
        break
    end
    mSleep(100)
  end
  mSleep(1000)
end

--- 点击某一个点,之后延迟多久触发
--- x : 点击的点的X坐标
--- Y : 点击的点的Y坐标
--- sleepTime: 之后的休眠时间
function Tap(x,y,sleepTime)
  touchDown(1,x,y)
  mSleep(100)
  touchUp(1,x,y)
  mSleep(sleepTime)
end

function TapAndInput(x,y,text)
  Tap(x,y,500)
  inputText(text.."")
  mSleep(100)
end

--- 监测时获取还是重新下载
function CheckIsGet(x,y)
  return getColor(x, y) == 33020 and getColor(x+5, y) == 33020 and getColor(x+5, y) == 33020 and getColor(x+5, y) == 33020
end

--- 监测监测是不是开始下载了
--- x1: 第一个点的x
--- y1: 第一个点的y
--- x2: 第二个点的x
--- y2: 第二个点的y
function StartDownload(x1,y1,x2,y2)
  while true do
    if getColor(576, 324) == 33020 and getColor(591, 339) == 33020 then
        mSleep(100)
        break
    end
    mSleep(100)
  end
end

function FinishDownload(x1,y1,x2,y2)
  while true do
    if getColor(576, 324) ~= 33020 and getColor(591, 339) ~= 33020 then
        mSleep(100)
        break
    end
    mSleep(100)
  end
end


function Download.download(username,password)


  local user = username
  local pass = password

  if CheckIsGet(540,323) then
    Tap(580,330,1000) -- 点击下载
    Tap(580,330,500) -- 点击下载
  else
    Tap(580,330,500) -- 点击下载
  end

  WatchPointChange(327,91,0xf8f8f8) -- 知道这个点不再是白色
  Tap(305,542,800) -- 点击使用现有的 Apple ID
  WatchPointChange(327,91,0xf8f8f8) -- 知道这个点不再是白色

  ::continue::

  TapAndInput(184,329,user)
  TapAndInput(184,383,pass)
  Tap(459,476,800) -- 点击好


  while true do
    mSleep(500)

    if getColor(576, 324) == 33020 and getColor(591, 339) == 33020 then
      toast("开始下载")
      FinishDownload(576, 324,591, 339) -- 开始下载
      toast("完成下载")
      break
    elseif getColor(327, 91) ~= 0xf8f8f8 then

      recognize = ocrText(356, 223, 430, 266, 1)

toast("识别的认字 " .. recognize)

      if string.find(recognize, "密码") then -- 如果账号密码没有输入正确

        toast("重新输入账号密码")

        goto continue
      end

        mSleep(1000)
        TapAndInput(169,378,pass)
        Tap(454,485,50) -- 点击好
        mSleep(1000)
        StartDownload(576, 324,591, 33)
        toast("开始下载")
        FinishDownload(576, 324,591, 339) -- 开始下载
        toast("完成下载")
        break
    end
    mSleep(100)
  end

end



return Download
